 //引用class="greytable"的ｔａｂｌｅ,鼠标移动到列表时TR会变色
function changeColorOnMouseOver() {
	$(".greytable tr:gt(0) td").mouseover(function() {
		   $(this).parent().find("td").css("background-color", "#e5e5e5");
		   $(this).parent().find("td").hover(function() {this.style.cursor = 'pointer';}); //鼠标变手形
	});
	$(".greytable tr:gt(0) td").mouseout(function() {
	       $(this).parent().find("td").css("background-color", "#ffffff");
	});
}

function changeColorOnMouseOverWithMultiTable() {
	$(".greytable").each(function(){
		$($(this).find("tr:gt(0) td")).mouseover(function() {
			$(this).parent().children().css("background-color", "#e5e5e5");
			 $(this).parent().children().hover(function() {this.style.cursor = 'pointer';}); //鼠标变手形
		});
		
		$($(this).find("tr:gt(0) td")).mouseout(function() {
			$(this).parent().children().css("background-color", "#ffffff");
		});
	});
}

//function changeColorOnMouseOverWithMultiTableAssignTr(trStartIndex) {
//	var index = parseInt(trStartIndex,10);
//	$(".greytable").each(function(){
//		$($(this).find("tr:gt("+index+") td")).mouseover(function() {
//			$(this).parent().children().css("background-color", "#e5e5e5");
//			 $(this).parent().children().hover(function() {this.style.cursor = 'pointer';}); //鼠标变手形
//		});
//		
//		$($(this).find("tr:gt("+index+") td")).mouseout(function() {
//			$(this).parent().children().css("background-color", "#ffffff");
//		});
//	});
//}
function changeColorOnMouseOverWithMultiTableAssignTr(trStartIndex) {
	var index = parseInt(trStartIndex, 10);
	$(".greytable").each(function() {
		var totalTd = findMostTdInOneTr(index, $(this));
		var totalTr = $(this).find("tr:gt(" + index + ")").length;
		$(this).find("tr:gt(" + index + ") td").hover(function() {
			$(this).css("cursor","pointer");
		}); //鼠标变手形
		
		$(this).find("tr:gt(" + index + ") td").mouseover(function() {
			//本行必定变色
			$(this).parent("tr").children("td").each(function() {
				$(this).css("background-color", "#e5e5e5");
			});
			var maxR = getMaxRowspan($(this).parent("tr").children("td"));
			//如果该td所在行存在一个跨行单元格，接下来多行变色
			if (maxR > 1) {
				var $tr = $(this).parent("tr").next("tr");
				for (var i = 0; i < maxR - 1; i++) {
					$tr.children("td").each(function() {
						$(this).css("background-color", "#e5e5e5");
					});
					$tr = $tr.next("tr");
				}
			}
			if($(this).attr("rowspan")) {
				var rowspan = $(this).attr("rowspan");
				// 如果改行单元格个数少于最大行单元格个数，则说明改行被跨行占用，hover时自底向上变色，直到找到跨行的那一行为止
				// 存在缺陷。如果改行下面一行也被跨行了怎么办
				if ($(this).parent("tr").children("td").length < totalTd) {
					var tr = $(this).parent("tr");
					for (var i = 0; i < totalTr; i++) {
						tr = tr.prev("tr"); // 上一行变色
						if (tr.children("td").length > $(this).parent("tr").children("td").length) {
							tr.children("td").each(function() {
								$(this).css("background-color", "#e5e5e5");
							});
							i = totalTr; // 找到跨行单元格所在行，i赋值最大，结束循环
						}
					}
//					for (var i = 0; i < totalTr; i++) {
//						tr = tr.next("tr"); // 下一行变色
//						if (tr.children("td").length > $(this).parent("tr").children("td").length) {
//							tr.children("td").each(function() {
//								$(this).css("background-color", "#e5e5e5");
//							});
//							i = totalTr; // 找到跨行单元格所在行，i赋值最大，结束循环
//						}
//					}
				}
			}
		});
		
		
		$(this).find("tr:gt(" + index + ") td").mouseout(function() {
			$(this).parent("tr").children("td").each(function() {
				$(this).css("background-color", "#fff");
			});
			var maxR = getMaxRowspan($(this).parent("tr").children("td"));
			if (maxR > 1) {
				var $tr = $(this).parent("tr").next("tr");
				for (var i = 0; i < maxR - 1; i++) {
					$tr.children("td").each(function() {
						$(this).css("background-color", "#fff");
					});
					$tr = $tr.next("tr");
				}
			}
			if($(this).attr("rowspan")) {
				var rowspan = $(this).attr("rowspan");
				// 被跨行
				if ($(this).parent("tr").children("td").length < totalTd) {
					var tr = $(this).parent("tr");
					for (var i = 0; i < totalTr; i++) {
						tr = tr.prev("tr");
						if (tr.children("td").length > $(this).parent("tr").children("td").length) {
							tr.children("td").each(function() {
								$(this).css("background-color", "#fff");
							});
							i = totalTr;
						}
					}
//					for (var i = 0; i < totalTr; i++) {
//						tr = tr.next("tr");
//						if (tr.children("td").length > $(this).parent("tr").children("td").length) {
//							tr.children("td").each(function() {
//								$(this).css("background-color", "#fff");
//							});
//							i = totalTr;
//						}
//					}
				}
			}
		});
	});
}

function findMostTdInOneTr(index, $obj) {
	var count = 0;
	$obj.find("tr:gt(" + index + ")").each(function() {
		if (count < $(this).children("td").length) {
			count = $(this).children("td").length;
		}
	});
	return count;
}

function getMaxRowspan($tds) {
	var maxRowspan = 1;
	$tds.each(function() {
		if ($(this).attr("rowspan")) {
			var rowspan = parseInt($(this).attr("rowspan"), 10);
			if (rowspan > maxRowspan) {
				maxRowspan = rowspan;
			}
		}
	});
	return maxRowspan;
}

function changeColorByTabIdOnMouseOver(tblId) {
	$("#"+tblId+" tr:gt(0) td").mouseover(function() {
	       $(this).parent().children().css("background-color", "#e5e5e5");
	       $(this).parent().children().hover(function() {this.style.cursor = 'pointer';}); //鼠标变手形
	});
	$("#"+tblId+" tr:gt(0) td").mouseout(function() {
	       $(this).parent().children().css("background-color", "#ffffff");
	});
}